草庐IT

python - Element Tree对xpath的限制

全部标签

xml - xpath 表达式 "@*"是什么意思?

Microsoft在VisualStudio上的XSLT模板是这样的:什么是@*? 最佳答案 @*是attribute::*的缩写,选择上下文节点的所有属性(或者,在XSLT匹配模式中,更恰本地说它匹配所有属性)。来自theXPathspec:Thereisalsoanabbreviationforattributes:attribute::canbeabbreviatedto@.Forexample,alocationpathpara[@type="warning"]isshortforchild::para[attribute:

xml - XPath 子串

我有一个XML文件,需要使用XSL脚本进行转换。下面是一个Feed示例。我需要提取NameLabel元素中的文本,但我只需要前两个破折号之间的文本。例如,我想要下面字符串中的A:NTX-A-20120131-0006我不太精通XPath,所以我很难组合一个表达式,但我假设我需要使用substring-(after|before)。我只是不确定如何。示例XML:NTX-A-20120131-0006编辑:我正在使用xslt1.0 最佳答案 substring-before(s1,s2)andsubstring-after(s1,s2)

python - 使用 ElementTree 在 python 中解析 xml

我是python的新手,我需要解析一些需要先清理的脏xml文件。我有以下python代码:importarffimportxml.etree.ElementTreeimportretotstring=""withopen('input.sgm','r')asinF:forlineininF:string=re.sub("[^0-9a-zA-Z/\s=!-\"\"]+","",line)totstring+=stringdata=xml.etree.ElementTree.fromstring(totstring)printdatafile.close解析:26-FEB-198715:0

xml - 使用 xpath 删除节点

我的xml结构如下:nullabcefg我正在使用org.w3c.dom.Document更新节点。什么时候有一个值null,我想删除null这可能吗?我知道我可以打电话removeChild(childElement),但不确定如何指定删除上面的特定嵌套元素。更新:有了下面的答案,我试过了:Stringquery="/a/b[foo[text()='null']]";Objectresult=(xpath.compile(newQuery)).evaluate(doc,NODE);NodeListnodes=(NodeList)result;for(inti=0;i我得到NOT_FO

python - 使用 Python 2 在 XML 中按属性查找所有节点

我有一个XML文件,其中包含许多具有相同属性的不同节点。我想知道是否有可能使用Python和任何其他包(如minidom或ElementTree)找到所有这些节点。 最佳答案 您可以使用内置的xml.etree.ElementTree模块。如果您想要所有具有特定属性的元素而不考虑属性值,您可以使用xpath表达式://tag[@attr]或者,如果您关心值(value)观://tag[@attr="value"]示例(使用findall()method):importxml.etree.ElementTreeasETdata="""

python - lxml.etree : Start tag expected, '<' 未找到,第 1 行,第 1 列

我想获取一些简单的xml文件并将它们一次性全部转换为CSV(尽管这段代码一次只针对一个文件)。在我看来好像没有正式的namespace,但我不确定。我有这段代码(我使用了一个header,SubmittingSystemVendor,但我真的想将它们全部写入CSV:importcsvimportlxml.etreex=r'C:\Users\...\jh944.xml'withopen('output.csv','w')asf:writer=csv.writer(f)writer.writerow('SubmittingSystemVendor')root=lxml.etree.from

xml - contains() 在 XPath 中做什么?

我有两个几乎相同的表,唯一的区别是第一个中的输入标签:表#1表#2当我使用这个XPath//table//tbody//tr[position()=1andcontains(.,input)]它返回两个表的第一行,而不仅仅是第一行正如我所料,表第一行。但是,此XPath//table//tbody//tr[position()=1]//input仅返回第一个中的input。那么,我做错了什么?为什么相同的input与两个表相关联?我是不是在这里滥用了.? 最佳答案 由于函数名称的错误选择1,许多人误解了contains()的用途XP

python - 使用 Python 更改 XML 文件中包含的文本的最佳方法是什么?

假设我有一个名为“MyData.xml”的现有普通XML文件,其中包含以下内容:foo我想将“foo”的文本值更改为“bar”,结果如下:bar完成后,我想保存更改。完成这一切的最简单最简单的方法是什么? 最佳答案 使用Python的minidom基本上您将执行以下步骤:将XML数据读入DOM对象使用DOM方法修改文档将新的DOM对象保存到新的XML文档中在这个过程中,python规范应该会很好地帮助你。 关于python-使用Python更改XML文件中包含的文本的最佳方法是什么?,我

java - 使用 XPath 查询 XML 时始终为空

我正在使用以下代码通过从流中获取的XPath查询一些XML。DocumentBuilderFactorydomFactory=DocumentBuilderFactory.newInstance();domFactory.setNamespaceAware(false);DocumentBuilderbuilder=domFactory.newDocumentBuilder();Documentdoc=builder.parse(inputStream);inputStream.close();XPathFactoryfactory=XPathFactory.newInstance()

python - 在 python 中快速简便地模板化 xml 文件的方法

现在我已经在我的python脚本中对整个xml文件进行了硬编码,并且只是执行了out.write(),但是现在它变得越来越难管理,因为我有多种类型的xml文件。什么是设置模板的最简单快捷的方法,以便我可以只给出变量名和文件名? 最佳答案 简短的回答是:您应该关注和处理数据(即python对象)而不是原始XML基本故事:XML应该是某些数据或数据集的表示。关于数据类型、它代表什么等等,您的问题没有太多细节——所以我会给您一些基本的答案。Python选择:BeautifulSoup、lxml和其他python库(ElementTree等